﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SIGCBI.Repository;
using SIGCBI.Entities;

namespace SIGCBI.Test.AlmacenTest
{
    [TestClass]
    public class PecosaTest
    {
        [TestMethod]
        public void GetAllFromPecosa()
        {
            PecosaRepository repository = new PecosaRepository();
            List<PECOSA> actual;
            actual = repository.GetAllFromPecosa();
            Assert.IsTrue(actual.Count > 0);
        }

        [TestMethod]
        public void GetFromPecosaById()
        {
            PecosaRepository repository = new PecosaRepository();
            int id = 1;
            PECOSA actual;
            actual = repository.GetFromPecosaById(id);
            Assert.IsTrue(actual.ID == 1);
        }

        [TestMethod]
        public void GetAllFromPecosaByCriterios()
        {
            PecosaRepository repository = new PecosaRepository ();
            var solicitante = "DANY VALDIVIA HUAMAN";
            var doc = "SIS001";
            var area = "SISTEMAS";
            var fec1 = DateTime.Now.Date;
            var fec2 = DateTime.Now.Date;

            List<PECOSA> actual;
            actual = repository.GetFromPecosaByCriterioAndAreaAndFecha(solicitante, doc, area, fec1, fec2);
            Assert.IsTrue(actual.Count >= 1);
            //Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddPecosa()
        {
            PecosaRepository repository = new PecosaRepository();
            ProductoRepository prodRepository = new ProductoRepository();
            
            var ListEsperado = (List<PECOSA>)repository.GetAllFromPecosa();

            var producto = prodRepository.GetFromProductoById(3);

            var detalle = new List<DETALLE_PECOSA>();

            var item = new DETALLE_PECOSA() { Cantidad = 2, IdPecosa = 1, IdProducto = 3, ValorUnitario = 4, PRODUCTO = producto };

            detalle.Add(item);

            var   pecosa = new PECOSA()
            {
                Fecha = DateTime.Now.Date,
                FechaIngreso = DateTime.Now.Date,
                FechaSalida = DateTime.Now.Date,
                IdArea = 1,
                IdSolicitante = 1,
                NroDoc = "PEC001",
                Total = 50,
                TRABAJADOR = null,

                DETALLE_PECOSA= detalle

            };
            repository.AddPecosa(pecosa);
            var ListaCTUAL = (List<PECOSA>)repository.GetAllFromPecosa();
            Assert.AreEqual(ListEsperado.Count + 1, ListaCTUAL.Count, "Error ");
        }
    }
}
